package com.pattern.seener;

import java.util.ArrayList;
import java.util.List;
import java.util.Observable;
import java.util.Observer;

/**
 * 被观察者的产品列表()
 */
public class ProductList extends Observable {

    private List<String> productList = null; //产品列表

    private static ProductList instance; //创建类的唯一实例

    public ProductList() {
    } //构建方法实例化

    //唯一实例
    public static ProductList getInstance(){
        if(instance == null){
            instance = new ProductList();
            instance.productList = new ArrayList<String>();
        }

        return instance;
    }

    /**
     * 创建观察者
     */
    public void addProductListObserver(Observer observer){
        this.addObserver(observer);
    }

    /**
     * 新增产品
     * @param newProduct 新产品
     */
    public void addProduct(String newProduct){
        productList.add(newProduct);
        System.out.println("产品新增的产品：" + newProduct);
        this.setChanged(); //设置观察者变化了
        this.notifyObservers(newProduct); //通知观察者
    }

}
